﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CoreGallery.Addins.Contracts;

namespace CoreGallery.Storage.flickr
{
    /// <summary>
    /// Uses Flickr as the back-end so albums can be directly contain Flickr
    /// photos from given users/sets.
    /// </summary>
    [CoreAddin("Flickr storage engine", "{89CA2AA1-E138-4639-89CA-7D834C5740D3}",
        Description = "Uses a Flickr user account directly as the storage medium for photos and albums.")]
    public class FlickrStorageProvider : IStorageProviderBase
    {
        #region IStorageProviderBase Members

        public string Name
        {
            get { return "Flickr storage engine"; }
        }

        public string Creator
        {
            get { throw new NotImplementedException(); }
        }

        public Guid UniqueKey
        {
            get { return new Guid("{89CA2AA1-E138-4639-89CA-7D834C5740D3}"); }
        }

        public string Description
        {
            get { return "Uses a Flickr user account directly as the storage medium for photos and albums."; }
        }

        public Uri CreatorHomePage
        {
            get { throw new NotImplementedException(); }
        }

        public Uri SupportHomePage
        {
            get { throw new NotImplementedException(); }
        }

        public string AboutText
        {
            get { return "Core storage engine for Flickr albums"; }
        }

        public Version Version
        {
            get { return new Version(1, 0); }
        }

        public bool IsReadOnly
        {
            get { throw new NotImplementedException(); }
        }

        public BaseGallery CreateGallery()
        {
            throw new NotImplementedException();
        }

        public void OnLoad()
        {
            Console.WriteLine("FlickrStorageProvider load");
        }

        public void OnUnload()
        {
            Console.WriteLine("FlickrStorageProvider unload");
        }

        IList<BaseGallery> IStorageProviderBase.Galleries
        {
            get { throw new NotImplementedException(); }
        }

        BaseGallery IStorageProviderBase.CreateGallery()
        {
            throw new NotImplementedException();
        }

        public BaseAlbum CreateAlbum(BaseGallery g)
        {
            throw new NotImplementedException();
        }

        public BasePhoto CreatePhoto(BaseAlbum a)
        {
            throw new NotImplementedException();
        }

        public void RemoveGallery(BaseGallery g)
        {
            throw new NotImplementedException();
        }

        public void OnInit()
        {
            Console.WriteLine("FlickrStorageProvider init");
        }

        #endregion
    }
}
